package com.mmy.service.line;

import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.mmy.domain.line.TLineOrder;
import com.mmy.domain.line.VLineOrder;
import com.mmy.domain.sys.TSysUser;


public interface LineOrderService {

	/**
	 * 个人中心通过登录人获取线路预留 获取分页
	 *
	 * @author 创建人 hanxl 整理
	 * @date 创建日期 2020.10.29
	 */
	public HashMap<String, Integer> mapLineReserve(String pageNumber, String pageSize, int iUserID);

	/**
	 * 个人中心通过登录人获取线路退单 获取分页
	 *
	 * @author 创建人 hanxl 整理
	 * @date 创建日期 2020.10.29
	 */
	public HashMap<String, Integer> mapLineRefund(String pageNumber, String pageSize, int iUserID);

	/**
	 * 个人中心通过登录人获取线路订单 获取分页
	 *
	 * @author 创建人 hanxl 整理
	 * @date 创建日期 2020.10.29
	 */
	public HashMap<String, Integer> mapLineOrder(String pageNumber, String pageSize, int iUserID);

	/**
	 * 个人中心通过登录人获取线路预留
	 *
	 * @author 创建人 hanxl 整理
	 * @date 创建日期 2020.10.29
	 */
	public List<TLineOrder> findByUserID(String pageNumber, String pageSize, int iUserID);

	/**
	 * 个人中心通过登录人获取线路订单
	 *
	 * @author 创建人 hanxl 整理
	 * @date 创建日期 2020.10.29
	 */
	public List<TLineOrder> findByOrderUserID(String pageNumber, String pageSize, int iUserID);

	/**
	 * 个人中心通过登录人获取线路退单
	 *
	 * @author 创建人 hanxl 整理
	 * @date 创建日期 2020.10.29
	 */
	public List<TLineOrder> findByChargeBackUserID(String pageNumber, String pageSize, int iUserID);

	/**
	 * 个人中心通过登录人取消线路预留
	 *
	 * @author 创建人 hanxl 整理
	 * @date 创建日期 2020.10.29
	 */
	public void updateState(int iID, TSysUser sessionSysUser);

	/**
	 * 个人中心通过登录人申请线路退单
	 *
	 * @author 创建人 hanxl 整理
	 * @date 创建日期 2020.10.29
	 */
	public void updateRefundState(int iID, TSysUser sessionSysUser);

	/**
	 * 个人中心通过登录人点击撤销线路退单
	 *
	 * @author 创建人 hanxl 整理
	 * @date 创建日期 2020.10.29
	 */
	public void updateCancelState(int iID, TSysUser sessionSysUser);

	/**
	 * 通过订单ID查询
	 *
	 * @author 创建人 hanxl 整理
	 * @date 创建日期 2020.10.29
	 */
	public TLineOrder findByID(int iID);

	/**
	 * 获取最大流水号
	 * 
	 * @return 返回值说明 流水号
	 * @author 创建人 hanxl
	 * @date 创建日期 2020.10.29
	 * @reviser 修改人 dingxd
	 * @date 创建日期 2020.11.16
	 */
	public int getMaxID();

	/**
	 * 获取订单最大编码
	 * 
	 * @param 参数说明 计划单编码
	 * @return 返回值说明 订单编码
	 * @author 创建人 dingxd
	 * @date 创建日期 2020.11.14
	 */
	public String getMaxCode(int iPlanID);

	/**
	 * 函数功能说明：新增id
	 *
	 * @param 参数说明
	 * @return 返回值说明 无返回值
	 * @throws 异常处理说明
	 * @author 创建人 hanxl 修改人 shangzl
	 * @date 创建日期 修改时间 2020.11.18
	 */
	public void save(int id);

	/**
	 * 函数功能说明：新增订单
	 *
	 * @param 参数说明
	 * @return 返回值说明 无返回值
	 * @throws 异常处理说明
	 * @author 创建人 hanxl 修改人 shangzl
	 * @date 创建日期 修改时间 2020.11.18
	 */
	public void save(TLineOrder tLineOrder);

	/**
	 * 函数功能说明：查找线路的订单
	 *
	 * @param 参数说明
	 * @return 返回值说明 线路订单集合
	 * @throws 异常处理说明
	 * @author 创建人 hanxl 修改人 shangzl
	 * @date 创建日期 修改时间 2020.11.18
	 */
	public List<VLineOrder> findByLineID(int iLineID);

	/**
	 * 函数功能说明：删除预留
	 *
	 * @param 参数说明
	 * @return 返回值说明 无返回值
	 * @throws 异常处理说明
	 * @author 创建人 hanxl 修改人 shangzl
	 * @date 创建日期 修改时间 2020.11.18
	 */
	public void delLineOrder(List<Integer> lstID);

	/**
	 * 函数功能说明： 出纳查询
	 *
	 * @param 参数说明
	 * @return 返回值说明 线路订单集合
	 * @throws 异常处理说明
	 * @author 创建人 hanxl 修改人 shangzl
	 * @date 创建日期 修改时间 2020.11.18
	 */
	public List<TLineOrder> findByCashierAndLineID(String strCashierState, int iLineID);

	/**
	 * 函数功能说明： 查询全部
	 *
	 * @param 参数说明
	 * @return 返回值说明 线路订单集合
	 * @throws 异常处理说明
	 * @author 创建人 hanxl 修改人 shangzl
	 * @date 创建日期 修改时间 2020.11.18
	 */
	public List<VLineOrder> findAll();
	/**
	 * 函数功能说明： 条件查询预留单
	 *
	 * @param 参数说明
	 * @return 返回值说明 线路订单集合
	 * @throws 异常处理说明
	 * @author 创建人liys
	 * @date 创建日期 修改时间 2020.11.18
	 */
	public List<VLineOrder> searchReserve(String strLineID, String strReserveName, String strReserveTel,String pageNumber,String pageSize);
	/**
	 * 函数功能说明： 预留单分页
	 *
	 * @param 参数说明
	 * @return 返回值说明 线路订单集合
	 * @throws 异常处理说明
	 * @author 创建人liys
	 * @date 创建日期 修改时间 2020.12.31
	 */
	public Map<String,Integer> mapOrderReserve(String pageNumber,String pageSize);
	/**
	 * 函数功能说明： 条件查询付款单
	 *
	 * @param 参数说明
	 * @return 返回值说明 线路订单集合
	 * @throws 异常处理说明
	 * @author 创建人liys
	 * @date 创建日期 修改时间 2020.11.18
	 */
	public List<VLineOrder> searchPaid(String strLineID, String strOrderName, String strOrderTel,String pageNumber,String pageSize);
	/**
	 * 函数功能说明： 付款单分页
	 *
	 * @param 参数说明
	 * @return 返回值说明 线路订单集合
	 * @throws 异常处理说明
	 * @author 创建人liys
	 * @date 创建日期 修改时间 2020.12.31
	 */
	public Map<String,Integer> mapOrderPaid(String pageNumber,String pageSize);
	/**
	 * 函数功能说明： 条件查询退单
	 *
	 * @param 参数说明
	 * @return 返回值说明 线路订单集合
	 * @throws 异常处理说明
	 * @author 创建人liys
	 * @date 创建日期 修改时间 2020.11.18
	 */
	public List<VLineOrder> searchCancel(String strLineID, String strOrderName, String strOrderTel,String pageNumber,String pageSize);
	/**
	 * 函数功能说明： 退单分页
	 *
	 * @param 参数说明
	 * @return 返回值说明 线路订单集合
	 * @throws 异常处理说明
	 * @author 创建人liys
	 * @date 创建日期 修改时间 2020.12.31
	 */
	public Map<String,Integer> mapOrderCancel(String pageNumber,String pageSize);
	/**
	 * 函数功能说明： 会计查询
	 *
	 * @param 参数说明
	 * @return 返回值说明 线路订单集合
	 * @throws 异常处理说明
	 * @author 创建人 hanxl 修改人 shangzl
	 * @date 创建日期 修改时间 2020.11.18
	 */
	public List<TLineOrder> findByAccountAndLineID(String strAccountState, int iLineID);

	/**
	 * 函数功能说明： 批量保存出纳审核
	 *
	 * @param 参数说明
	 * @return 返回值说明 无返回值
	 * @throws 异常处理说明
	 * @author 创建人 hanxl 修改人 shangzl
	 * @date 创建日期 修改时间 2020.11.18
	 */
	public void saveAll(List<TLineOrder> lstCashier);
	
	/**
	 * 函数功能说明： 根据预留姓名、时间查询 订单组
	 *
	 * @param 参数说明
	 * @return 返回值说明 vLineOrder
	 * @throws 异常处理说明
	 * @author 创建人liys
	 * @date 创建日期 修改时间 2021.01.12
	 */
	public List<VLineOrder> searchReserveGroup(String strReserveName,Date reserveDate);
	
}
